La programmation par contraintes est bien plus efficace pour ce problème.
Avec le développement Prolog IV, il est l'un des principaux experts de la programmation par contraintes.
En informatique, la programmation par contraintes consiste à spécifier son problème à l'aide de relations appelées contraintes.
La programmation par contraintes permet de mettre en œuvre rapidement et efficacement de telles méthodes de recherche arborescente.
Elles sont en particulier au cœur des solveurs de programmation linéaire en nombres entiers et de programmation par contraintes.
La programmation par contraintes permet de résoudre un grand nombre de problèmes d'optimisation combinatoire ou continue, linéaire ou non-linéaire, de manière très élégante et très efficace.
Dans la plupart des cas, le problème est NP complet et, pour le résoudre, il faut faire appel à des algorithmes de branch and bound, à la programmation linéaire en nombres entiers ou encore à la programmation par contraintes.